﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.OleDb;
using clEntidad;

namespace clBD
{
    public class BDPersona:BDBase 
    {
        public BDPersona(OleDbConnection cn):base(cn){ }
        public BDPersona(OleDbConnection cn, OleDbTransaction trx) : base(cn, trx) { }
        public OleDbDataReader getByVisita(int ultVisita)
        {
            String query = "select ape_pat,ape_mat,nombres,empresa,cargo,visitado,ubicacion,area,num_doc " +
                "from persona where ult_ingreso="  + ultVisita ;
            return execDr(query);
        }

        public OleDbDataReader get(String numDoc)
        {
            String query = "select ape_pat,ape_mat,nombres,empresa,cargo,visitado,ubicacion,area,ult_ingreso " +
                "from persona where num_doc='" + numDoc.Trim().ToUpper() + "'";
            //String query = "select ape_pat,ape_mat,nombres,empresa,cargo,visitado,ubicacion,area " +
            //    "from persona where num_doc='" + numDoc.Trim().ToUpper() + "'";
            return execDr(query);
        }
        public void grabar(Persona persona, int idVisita)
        {
            String query = "select 1 from persona where num_doc='" + 
                persona.numDoc.Trim().ToUpper()  + "'";
            OleDbDataReader dr = execDr(query);
            if (!dr.HasRows)
            {
                query = "insert into persona(num_doc,ape_pat,ape_mat,nombres,empresa,cargo,visitado,ubicacion,area,ult_ingreso) "
                    + " values ('" + persona.numDoc.Trim().ToUpper() + "','"
                    + persona.apePat.Trim().ToUpper() + "','"
                    + persona.apeMat.Trim().ToUpper() + "','"
                    + persona.nombres.Trim().ToUpper() + "','"
                    + persona.empresa.Trim().ToUpper() + "','"
                    + persona.cargo.Trim().ToUpper() + "','"
                    + persona.visitado.nombre.Trim().ToUpper() + "','"
                    + persona.visitado.ubicacion.Trim().ToUpper() + "','"
                    + persona.visitado.area.Trim().ToUpper() + "',"
                    + idVisita + ")";

            }
            else
            {
                query = "update persona set ape_pat='" + persona.apePat.Trim().ToUpper()
                    + "',ape_mat ='" + persona.apeMat.Trim().ToUpper()
                    + "',nombres='" + persona.nombres.Trim().ToUpper()
                    + "',empresa='" + persona.empresa.Trim().ToUpper()
                    + "',cargo='" + persona.cargo.Trim().ToUpper()
                    + "',visitado='" + persona.visitado.nombre.Trim().ToUpper()
                    + "',ubicacion='" + persona.visitado.ubicacion.Trim().ToUpper()
                    + "',area='" + persona.visitado.area.Trim().ToUpper()
                    + "',ult_ingreso=" + idVisita
                    + " where num_doc='" + persona.numDoc.Trim().ToUpper() + "'";
                     
            }
            execute(query);
        }
    }
}
